import { loadEnv, defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import langJsx from "vite-plugin-lang-jsx";
import VueJsx from "@vitejs/plugin-vue-jsx";
import { resolve } from "path";

import { createSvgIconsPlugin } from "vite-plugin-svg-icons";

// import UnoCSS from "unocss/vite";=
export default defineConfig(({ mode }) => {
  const env = loadEnv(mode, process.cwd());
  return {
    base: "/webapp", // 相对路径，打包后可放任意路径
    plugins: [
      // 必有插件
      langJsx(),
      vue(),
      // UnoCSS({
      //   hmrTopLevelAwait: false,
      // }),
      createSvgIconsPlugin({
        // 指定需要缓存的图标文件夹
        iconDirs: [resolve(process.cwd(), "src/assets/icons")],
        // 指定symbolId格式
        symbolId: "icon-[dir]-[name]",
      }),
    ],
    server: {
      host: true,
      port: 8088, // 设置服务启动端口号
      open: true, // 设置服务启动时是否自动打开浏览器
      fs: {
        // 限制为工作区 root 路径以外的文件的访问
        strict: false,
      },
      hmr: true, //开启热更新
      proxy: {
        /** 代理前缀为 /api 的请求  */
        [env.VITE_APP_BASE_API]: {
          changeOrigin: true,
          // 接口地址 例如：http://vapi.youlai.tech
          target: env.VITE_APP_API_URL,
          rewrite: (path) =>
            path.replace(new RegExp("^" + env.VITE_APP_BASE_API), ""),
        },
      },
    },
    resolve: {
      alias: {
        // 路径别名
        "@": resolve(__dirname, "src"),
        "@images": resolve(__dirname, "src/assets/images"),
      },
      // 导入文件时免后缀
      extensions: [".vue", ".js", ".ts", ".jsx", ".tsx", ".json"],
    },
  };
});
